#include "expression.h"

namespace logo
{
	Expression::Expression()
	{
		type = ExpressionType::Unknow;
	}

	Expression::~Expression()
	{}

	ArithmeticExpression::ArithmeticExpression()
	{
		type = ExpressionType::Arithmetic;
	}


	ArithmeticExpression::~ArithmeticExpression()
	{
	}

	AssignmentExpression::AssignmentExpression()
	{
		type = ExpressionType::Assignment;
	}

	AssignmentExpression::AssignmentExpression(std::wstring _name, double _value) :name(_name), value(_value)
	{
		type = ExpressionType::Assignment;
	}

	AssignmentExpression::~AssignmentExpression()
	{
	}

	CmdExpression::CmdExpression()
	{
		type = ExpressionType::Cmd;
	}

	CmdExpression::~CmdExpression()
	{
	}

	CompareExpression::CompareExpression()
	{
		type = ExpressionType::Compare;
	}

	CompareExpression::~CompareExpression()
	{}

	SelectExpression::SelectExpression()
	{
		type = ExpressionType::Select;
	}

	SelectExpression::~SelectExpression()
	{
	}

	LoopExpression::LoopExpression()
	{
		type = ExpressionType::Loop;
	}

	LoopExpression::~LoopExpression()
	{}

	FuncExpression::FuncExpression()
	{
		type = ExpressionType::Func;
		isend = false;
	}

	FuncExpression::~FuncExpression()
	{}

	DefFuncExpression::DefFuncExpression()
	{
		type = ExpressionType::Defunc;
	}

	DefFuncExpression::~DefFuncExpression()
	{}
};
